Amazon Route 53のDNSフェイルオーバー機能を利用したリージョンを跨いだバックアップサイトの構築(EC2 to EC2編)
本記事はAmazon Route 53のDNSフェイルオーバーに関する下記記事の続き記事です。
・AWS:Route 53のDNSフェイルオーバー機能を利用したリージョンを跨いだバックアップサイトの構築(EC2 to S3編)
https://dev.classmethod.jp/cloud/route-53-dns-failover-s3/
プライマリサイト(EC2)からセカンダリサイト(EC2)へのDNSフェイルオーバー
Route 53に追加されたDNSフェイルオーバー機能ですが、前回はフェイルオーバー先のサイトとしてS3の静的なサイトを採用した場合の構成を試してみました。
今回はフェイルオーバー先のサイトもEC2ベースで構成された場合を試してみます。AWS環境構成は下記のようになります。
- TokyoリージョンにEC2インスタンスを作成します
- SingaporeリージョンにEC2インスタンスを作成します
- Route 53のHelth Checkを作成し、プライマリサイトを監視するように設定します
- プライマリサイト、セカンダリサイト用の2つのAレコードをRoute 53のHosted Zoneに追加します
- DR対策を想定してプライマリサイトとセカンダリサイトを異なるリージョンで構築しています
- (オプション)Route 53、プライマリサイト、セカンダリサイトを管理するAWSアカウントを分ける事を想定しました(※別に分けなくても全然OKです!)
プライマリサイトの作成(EC2インスタンス)とRoute 53の設定
プライマリサイトの作成とRoute 53の設定に関しては、前回の記事の構成を流用しているので、本記事からご覧になっている方は、下記記事を参照して環境を作成してみて下さい。
・AWS:Route 53のDNSフェイルオーバー機能を利用したリージョンを跨いだバックアップサイトの構築(EC2 to S3編)
https://dev.classmethod.jp/cloud/route-53-dns-failover-s3/
セカンダリサイトの作成(EC2インスタンス)
SingaporeリージョンにEC2インスタンスを起動し、Apache上のindex.htmlに「Web2 in ap-southeast-1b(Singapore Region)」と書いたものを用意しました。インスタンスにはEIPを割り当て、ブラウザからWebサイトを確認しておきます。
※DR対策としてTokyoリージョンとは異なるリージョンでサーバーを構築しています。Tokyoリージョンの被災のみならず、アジア全体がコロニー落とし等に見舞われることを想定して、非Asia PacificのリージョンにDRサイトを構築することもAWSではお勧めです。
セカンダリサイト用のAレコードの作成
次にセカンダリサイト用のAレコードを作成します。
すでに前の記事でセカンダリサイト用のAレコードは作成しているので、それを流用します。
AliasをNoにしてセカンダリサイトのEC2インスタンスのEIPを指定しています。他の設定はS3版のセカンダリサイト用Aレコードの場合と同じです。Health Checkは行いません。
また、TTLはプライマリサイトと同じ値にしています。セカンダリサイトからプライマリサイトへのリカバリ時に影響してきますので注意して下さい。
DNSフェイルオーバーの実行
それではDNSフェイルオーバーを実行してみましょう。まずはプライマリサイトにブラウザでアクセスしてみます。
次にプライマリサイトのWebサーバーを停止します。サーバー停止直後にWebサイトにアクセスしようとするとブラウザにエラーが表示されます。
プライマリサイトに指定したTTL(今回は60秒)が過ぎた頃にWebサイトにアクセスするとセカンダリサイトの画面が表示されます。
DNSフェイルオーバーからのリカバリ
前回の記事では上記の「セカンダリサイトへのDNSフェイルオーバー」までを試していました。
今回はDNSフェイルオーバー後にプライマリサイトを復旧した場合どうなるかを試してみます。
Webサイトとしてセカンダリサイトがブラウザで表示されている状態で、プライマリサイトのWebサーバーを起動してみます。
その後しばらく待つと自動的にプライマリサイトにリカバリされ、プライマリサイトの画面が表示されるようになります。
まとめ
Amazo Route 53に追加されたDNSフェイルオーバーの機能でEC2ベースのWebサイトからEC2ベースのWebサイトにDNSフェイルオーバーしてみました。また、今回はフェイルオーバー先からのリカバリも試してみました。
S3でセカンダリサイトを作成するのに比べて簡単さで言えば下がってしまいますが、プライマリサイトのバックアップを表示したり、簡単ながらも動的なサイトをせかんがりサイトとしたい場合は今回のようなAWS環境構成ためしてみるのも良いです。